package org.javaboy.fmall.service;

import com.alibaba.fastjson.JSONObject;
import org.apache.ibatis.annotations.Param;
import org.javaboy.fmall.entity.FmBase;

import java.util.List;
import java.util.Map;

/**
 * (FmBase)表服务接口
 *
 * @author makejava
 * @since 2020-07-16 01:25:10
 */
public interface FmBaseService {


    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit 查询条数
     * @return 对象列表
     */
    List<FmBase> queryAllByLimit(int offset, int limit);

    /**
     * 通过实体作为筛选条件查询
     *
     * @param fmBase 实例对象
     * @return 对象列表
     */
    List<FmBase> getFmBaseAll(FmBase fmBase);
    /**
     * 新增数据
     *
     * @param fmBase 实例对象
     * @return 实例对象
     */
    FmBase insert(FmBase fmBase);



    /**
     * 插入一条数据
     *
     * @param  主键
     * @return 是否成功
     */
   Boolean insertFmBaseDataOne(FmBase fmBase);


    /**
     * 删除数据
     *
     * @param fmBase 实例对象
     * @return 实例对象
     */
    Boolean delFmBaseData(FmBase fmBase);


    /**
     * 修改数据
     *
     * @param fmBase 实例对象
     * @return 实例对象
     */
    Boolean updateFmBaseData(FmBase fmBase);


    JSONObject getLatestFormByDefine(String  fromDefineId, Integer pageNo,Integer pageSize, String  condition, String orderBy,Boolean flag, String paramJson, String queryValue);


    boolean delFmBaseToId(String colName, String value, String tableName);

    boolean insertFmTableDate(String colNames, String values, String tableName);

    boolean updateFmTableDate(String colNames, String values, String tableName, String accordName, String accordValue);

    /**
     * 根据业务id删除数据
     *
     * @param businessIds
     * @param fromDefineId
     */
    String deleteData(String businessIds, Long fromDefineId);

    /**
     * 提交数据
     *
     * @param fromJson
     * @param fromDefineId
     */
    void submitBusinessStartFormData(String fromJson, Long fromDefineId);

    /**
     * 修改数据
     *
     * @param fromJson
     * @param fromDefineId
     * @param businessId
     */
    void submitBusinessFormData(String fromJson, Long fromDefineId, Long businessId);





}
